package IOFlow.bufferedStreams.characterStream.reader;

import java.io.FileReader;
import java.io.IOException;

//字符输入流
public class Reader {
    public static void main(String[] args) throws IOException {
        /*
        第一步:创建对象:
        public FileReader(File file)        创建字符输入流关联本地文件
        public FileReader(String pathname)  创建字符输入流关联本地文件

        第二步:读取数据:
        public int read()       读取数据，读取到末尾的时候返回-1
        public int read(char[] buffer) 读取多个数据，读到末尾返回-1

        第三步:释放资源:
        public void close() 释放资源/关流
         */

        //1.创建对象
        //创建字符输入流关联本地文件
        FileReader fr=new FileReader("JavaCase\\src\\IOFlow\\CharacterStream\\Test");

        //2.读取数据
        //空参read
        //EmptyParameters(fr);

        //有参read
        ThereAreGinseng(fr);

        //3.释放资源
        fr.close();
    }

    //有参读取数据
    public static void ThereAreGinseng(FileReader fr) throws IOException {
        char[] chars=new char[2];
        int len;
        while((len= fr.read(chars))!=-1){
            //把数组转换为字符串再进行打印
            System.out.print(new String(chars,0,len));
        }
    }

    //空参读取数据
    public static void EmptyParameters(FileReader fr) throws IOException {
        //读取数据
        int ch;
        //利用机制为-1的时候停止读取
        while((ch= fr.read())!=-1){
            //循环打印，并进行强转char
            System.out.print((char)ch);
        }
    }
}
